WinSoft JSON 2.4 No Source D6 XE6

Read and modify existing json files:

var Json: TJson; with TJsonParser.Create do try   Json := ParseUtf8File('c:\data.json');   try     ShowMessage(Json.ToString);   finally     if not Json.IsLiteral then       Json.Free;   end; finally   Free; end;

Create new json files:

var   MyArray: TJsonArray;   MyObject: TJsonObject; with TJsonObject.Create do try   SetNull('Null');   SetTrue('True');   SetFalse('False');   SetNumber('Number', 1.23);   SetString('String', 'hello');   SetDateTime('DateTime', Now);   MyArray := SetArray('Array', 3);   MyArray.SetString(0, 'First item');   MyArray.SetString(1, 'Second item');   MyArray.SetNumber(2, 3.21);   MyObject := SetObject('Object');   MyObject.SetString('First Member', 'Hello');   MyObject.SetString('Second Member', 'World');   MyObject.SetFalse('Third Member');   MyObject.SetTrue('Fourth Member');   MyObject.SetNumber('Other Member', 1.11);   ShowMessage(ToString);   ToUtf8File('c:\new.json'); finally   Free; end;

Use fast, streaming TJsonWriter to create json file without in-memory overhead of TJson objects:

with TJsonWriter.Create('c:\data.json') do try   BeginObject;     WriteNull('Null');     Write('True', True);     Write('False', False);     Write('Number', 1.23);     Write('String', 'hello');     Write('DateTime', Now, 0);     BeginArray('Array');       Write('First item');       Write('Second item');       Write(3.21);     EndArray;     BeginObject('Object');       Write('First Member', 'Hello');       Write('Second Member', 'World');       Write('Third Member', False);       Write('Fourth Member', True);       Write('Other Member', 1.11);     EndObject;   EndObject;   Check; finally   Free; end;